/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.comprasPublicas.util;

import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.NumberFormatter;

/**
 *
 * @author helsen
 */
public class FormatadoresUtil {
    /**
     * Formata um campo para utilizar no padrão brasileiro.
     * <p>
     * Exemplo: textValorServicoPrestado.setFormatterFactory(Tools.formataCampoDinheiro());
     *
     * @return Uma instância de DefaultFormatterFactory
     */
    public static DefaultFormatterFactory formataCampoDinheiro() {
        NumberFormat formatadorNumerico;

        formatadorNumerico = NumberFormat.getNumberInstance(new Locale("pt", "BR"));
        formatadorNumerico.setMinimumFractionDigits(2);
        formatadorNumerico.setMaximumFractionDigits(2);

        NumberFormatter fmt = new NumberFormatter(formatadorNumerico);
        fmt.setAllowsInvalid(false);

        return new DefaultFormatterFactory(fmt);
    }

    /**
     * Transforma uma data do formato brasileiro(16/03/2010)<br>
     * para o formato do banco de dados 2010-03-16.
     * <p>
     * Exemplo: Tools.data2Banco("16/03/2010");
     * @param data
     * @return
     */
    public static Date data2Banco(String data) {
        Date ret = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat();
        sdf.applyPattern("yyyy-MM-dd");

        data = data.substring(6, 10) + "-" + data.substring(3, 5) + "-" + data.substring(0, 2);

        try {
            ret = sdf.parse(data);
        } catch (Exception e) {
            ret = null;
        }

        return ret;
    }

    public static String banco2View(String data) {
        return data.substring(8, 10) +"/"+ data.substring(5, 7) +"/"+ data.substring(0, 4);
    }

    public static String date2View(Date date) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        return sdf.format(date).toString();
    }

}
